#!/usr/bin/env node

// 
/* 脚手架完成过程：
1、yarn init 初始化项目的package.json文件
2、在项目根目录创建cli.js文件，并在package.json文件中添加bin属性，属性值是cli.js，表示脚手架的入口文件。
3、在cli.js文件中， 文件第一行必须标注 #!/usr/bin / env node；安装inquirer通过命令行交互询问用户问题，安装模板引擎模块渲染对应的模板文件；通过文件流的读取与写入实现文件的复制；
5、执行yarn link，在本地进行脚手架的开发调试
6、npm publish 发布脚手架到npm

*/


const inquirer = require('inquirer');
const EJS = require('ejs');
const path = require('path');
const fs = require("fs");
const process = require("process");


inquirer.prompt([{
        type: 'input',
        name: 'name',
        message: 'your project name',
    },
    {
        type: "input",
        name: "version",
        message: "version",
    },
    {
        type: "input",
        name: "author",
        message: "author",
    }
]).then(answers => {
    const tplDir = path.join(__dirname, "templates");
    const desDir = process.cwd();
    fs.readdir(tplDir, (err, files) => {
        if (err) throw err;
        files.forEach(file => {
            EJS.renderFile(path.join(tplDir, file), answers, (err, result) => {
                if (err) throw err;
                fs.writeFileSync(path.join(desDir, file), result);
            })
        })
    })
})